package com.itboy.search.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.itboy.common.core.domain.entity.es.SkuEsModel;
import lombok.Data;

import java.util.List;

/**
 * 查询的响应数据
 */
@Data
public class SearchResult {

    //查询到的所有商品信息
    private List<SkuEsModel> products;

    //当前页面
    private Integer pageNum;

    //总记录数
    private Long total;

    //总页码数
    private Integer totalPages;

    //导航页
    private List<Integer> pageNavs;

    //查询到的所有品牌信息
    private List<BrandVo> brands;

    //查询所涉及到的所有属性
    private List<AttrVo> attrs;

    //查询所涉及到的所有分类信息
    private List<CatalogVo> catalogs;


    //面包屑导航
    private List<NavVo> navs;

	/**
	 * 导航信息
	 */
	@Data
    public static class NavVo{
        private String navName;
        private String navValue;
        private String link;
    }

	/**
	 * 品牌信息
	 */
	@Data
	public static class BrandVo {
		@JsonSerialize(using = ToStringSerializer.class)
		private Long brandId;
		/**
		 * 品牌名称
		 */
		private String brandName;
		/**
		 * 品牌logo
		 */
		private String brandImg;
	}

	/**
	 * 查询的分类信息
	 */
	@Data
	public static class CatalogVo {
		@JsonSerialize(using = ToStringSerializer.class)
		private Long catalogId;
		/**
		 * 分类名称
		 */
		private String catalogName;
	}

	/**
	 * 查询的属性信息
	 */
	@Data
	public static class AttrVo {
		@JsonSerialize(using = ToStringSerializer.class)
		private Long attrId;
		/**
		 * 属性名称
		 */
		private String attrName;
		/**
		 * 属性值
		 */
		private List<String> attrValue;
	}

}
